1. Field of the Invention
The present invention relates generally to audio/video playback devices, and more particularly to playing movie data held in various storage devices with varying bandwidth capabilities, where the movie player adapts to these varying conditions.
2. Related Art
Today, a wide variety of applications demand that a workstation display a moving image with accompanying sound. Often these workstations must access the audio and video data from multiple sources, some local and some accessed via a network connection. This data must be supplied to the display unit at a constant rate in order to achieve a steady picture. Problems arise when the data is not provided to the workstation at the required rate.
This problem is particularly acute when the data source must be accessed via a network. Delays in accessing data over standard networks tend to be longer and have a wider variance than accessing data from a local source (e.g., local RAM, local disk drive). Conventionally, one must insure that the network provides the data at a constant rate in order to achieve an acceptable output.
This solution, known as a "server push" solution, requires a powerful and complex server. The client, however, may be very simple. The client sends a request specifying what to play, and how fast to play it. The server responds by sending the requested information at the requested rate. Again, the rate at which the information flows from the server to the client must be very close to constant as the client has limited memory to buffer the information.
This approach presents several problems. Any interruption in the flow of data will cause an immediate degradation in output quality. Thus, there is no allowance for network contention or errors. Further, there is no feedback from the client to the server to advise the server of problems with the transmission. The client only sends messages to the server when the user issues a playback command, such as "stop," or "fast forward."
The primary advantage associated with the server push solution is the minimal cost of client hardware and software. However, this advantage is more than offset by the cost of a sophisticated server which must provide a guaranteed bandwidth and actively monitor the status of the client. This complexity has a deleterious effect on server reliability: increased sophistication results in decreased reliability.
A need exists for a system which offers high-performance, user-controlled playback over a general purpose computer network. Users often want to integrate this capability into an existing network which performs numerous other tasks as well. However, existing networks often are unreliable and unsophisticated, precluding the use of a server-push solution. Another solution which accommodates the use of an existing network would have obvious cost advantages over the server-push which requires a new, sophisticated network dedicated almost exclusively to audio/video playback.
Also, users have often invested heavily in relatively sophisticated client hardware, such as conventional personal computers or high-performance workstations. Again, this does not fit the server-push solution.
Numerous applications exist for the appropriate solution. Multi-media software, commonly used today in a variety of environments, integrates moving pictures and sound. Dedicated machines are also being developed for playing games over a network. These games also involve sophisticated graphics and sound.
Finally, modern animation is often developed in a shared network environment where multiple animators access a common database. It is often the case where data needs to be accessed from different sources. Ideally, the scene currently being edited by the animator will be stored locally for easy access. In order to develop the scene in context, it is very useful to be able to play the scenes immediately before and after. These surrounding scenes, called "hook-ups", often are stored as part of a large library accessed via the network.
These hook-ups may be copied to the local machine before being played. However, this takes time and does not insure that the animator has been provided with the latest copy as editing of all scenes may be ongoing.
Thus, what is requires is an improved system and method for utilizing existing computer networks and client hardware to provide user-controlled, high performance audio/video playback.